﻿#region Imports
using CommonUtilities.Enums;
using CommonUtilities.Models;
using Microsoft.VisualStudio.TestTools.UnitTesting;
#endregion

namespace CommonUtilities.UTModels.UnitTest
{
    /// <summary>
    ///This is a test class for MemoryMgmt_Test and is intended
    ///to contain all MemoryMgmt_Test Unit Tests
    ///</summary>
    //[TestClass]
    public class MemoryMgmt_Test
    {
        private TestContext testContextInstance;

        /// <summary>
        ///Gets or sets the test context which provides
        ///information about and functionality for the current test run.
        ///</summary>
        public TestContext TestContext
        {
            get
            {
                return testContextInstance;
            }
            set
            {
                testContextInstance = value;
            }
        }

        #region Additional test attributes
        // 
        //You can use the following additional attributes as you write your tests:
        //
        //Use ClassInitialize to run code before running the first test in the class
        //[ClassInitialize()]
        //public static void MyClassInitialize(TestContext testContext)
        //{
        //}
        //
        //Use ClassCleanup to run code after all tests in a class have run
        //[ClassCleanup()]
        //public static void MyClassCleanup()
        //{
        //}
        //
        //Use TestInitialize to run code before running each test
        //[TestInitialize()]
        //public void MyTestInitialize()
        //{
        //}
        //
        //Use TestCleanup to run code after each test has run
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //
        #endregion

        /// <summary>
        ///A test for MemoryMgmt Constructor
        ///</summary>
        [TestMethod]
        public void MemoryMgmtConstructor_Test()
        {
            eByteValueType type = new eByteValueType(); // TODO: Initialize to an appropriate value
            double value = 0F; // TODO: Initialize to an appropriate value
            MemoryMgmt target = new MemoryMgmt(type, value);
            Assert.Inconclusive("TODO: Implement code to verify target");
        }

        /// <summary>
        ///A test for CalculateByteTypeValue
        ///</summary>
        [TestMethod]
        [DeploymentItem("CommonUtilities.dll")]
        public void CalculateByteTypeValue_Test()
        {
            PrivateObject param0 = null; // TODO: Initialize to an appropriate value
            MemoryMgmt_Accessor target = new MemoryMgmt_Accessor(eByteValueType.KB, 10000);
            eByteValueType byteValueType = eByteValueType.MB;
            bool isPracticalSizeCalculation = false;
            double expected = 10F;
            double actual;
            actual = target.CalculateByteTypeValue(byteValueType, isPracticalSizeCalculation);
            Assert.AreEqual(expected, actual);
        }

        /// <summary>
        ///A test for GetPowerDifference
        ///</summary>
        [TestMethod]
        [DeploymentItem("CommonUtilities.dll")]
        public void GetPowerDifference_Test()
        {
            PrivateObject param0 = null; // TODO: Initialize to an appropriate value
            MemoryMgmt_Accessor target = new MemoryMgmt_Accessor(param0); // TODO: Initialize to an appropriate value
            eByteValueType from = new eByteValueType(); // TODO: Initialize to an appropriate value
            eByteValueType to = new eByteValueType(); // TODO: Initialize to an appropriate value
            int expected = 0; // TODO: Initialize to an appropriate value
            int actual;
            actual = target.GetPowerDifference(from, to);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for SummaryByteTypeValue
        ///</summary>
        [TestMethod]
        public void SummaryByteTypeValue_Test()
        {
            eByteValueType type = new eByteValueType(); // TODO: Initialize to an appropriate value
            double value = 0F; // TODO: Initialize to an appropriate value
            MemoryMgmt target = new MemoryMgmt(type, value); // TODO: Initialize to an appropriate value
            eByteValueType reqByteValueType = new eByteValueType(); // TODO: Initialize to an appropriate value
            string expected = string.Empty; // TODO: Initialize to an appropriate value
            string actual;
            actual = target.SummaryByteTypeValue(reqByteValueType);
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for Byt
        ///</summary>
        [TestMethod]
        [DeploymentItem("CommonUtilities.dll")]
        public void Byt_Test()
        {
            PrivateObject param0 = null; // TODO: Initialize to an appropriate value
            MemoryMgmt_Accessor target = new MemoryMgmt_Accessor(param0); // TODO: Initialize to an appropriate value
            double actual;
            actual = target.Byt;
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for GByt
        ///</summary>
        [TestMethod]
        [DeploymentItem("CommonUtilities.dll")]
        public void GByt_Test()
        {
            PrivateObject param0 = null; // TODO: Initialize to an appropriate value
            MemoryMgmt_Accessor target = new MemoryMgmt_Accessor(param0); // TODO: Initialize to an appropriate value
            double actual;
            actual = target.GByt;
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for KByt
        ///</summary>
        [TestMethod]
        [DeploymentItem("CommonUtilities.dll")]
        public void KByt_Test()
        {
            PrivateObject param0 = null; // TODO: Initialize to an appropriate value
            MemoryMgmt_Accessor target = new MemoryMgmt_Accessor(param0); // TODO: Initialize to an appropriate value
            double actual;
            actual = target.KByt;
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for MByt
        ///</summary>
        [TestMethod]
        [DeploymentItem("CommonUtilities.dll")]
        public void MByt_Test()
        {
            PrivateObject param0 = null; // TODO: Initialize to an appropriate value
            MemoryMgmt_Accessor target = new MemoryMgmt_Accessor(param0); // TODO: Initialize to an appropriate value
            double actual;
            actual = target.MByt;
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for PracticalSize
        ///</summary>
        [TestMethod]
        public void PracticalSize_Test()
        {
            eByteValueType type = new eByteValueType(); // TODO: Initialize to an appropriate value
            double value = 0F; // TODO: Initialize to an appropriate value
            MemoryMgmt target = new MemoryMgmt(type, value); // TODO: Initialize to an appropriate value
            string actual;
            actual = target.PracticalSize;
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for SignificantByteType
        ///</summary>
        [TestMethod]
        public void SignificantByteType_Test()
        {
            eByteValueType type = new eByteValueType(); // TODO: Initialize to an appropriate value
            double value = 0F; // TODO: Initialize to an appropriate value
            MemoryMgmt target = new MemoryMgmt(type, value); // TODO: Initialize to an appropriate value
            eByteValueType expected = new eByteValueType(); // TODO: Initialize to an appropriate value
            eByteValueType actual;
            target.SignificantByteType = expected;
            actual = target.SignificantByteType;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for TByt
        ///</summary>
        [TestMethod]
        [DeploymentItem("CommonUtilities.dll")]
        public void TByt_Test()
        {
            PrivateObject param0 = null; // TODO: Initialize to an appropriate value
            MemoryMgmt_Accessor target = new MemoryMgmt_Accessor(param0); // TODO: Initialize to an appropriate value
            double actual;
            actual = target.TByt;
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for UpgradeThresholdValue
        ///</summary>
        [TestMethod]
        public void UpgradeThresholdValue_Test()
        {
            eByteValueType type = new eByteValueType(); // TODO: Initialize to an appropriate value
            double value = 0F; // TODO: Initialize to an appropriate value
            MemoryMgmt target = new MemoryMgmt(type, value); // TODO: Initialize to an appropriate value
            int expected = 0; // TODO: Initialize to an appropriate value
            int actual;
            target.UpgradeThresholdValue = expected;
            actual = target.UpgradeThresholdValue;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }
    }
}
